/**
 * 属性类型枚举
 * 定义角色具备的基础属性类型
 */
export const ATTRIBUTE_TYPE = {
  /** 生命值，决定角色的生存能力 */
  HEALTH: 'HEALTH',
  /** 攻击力，影响角色造成的伤害 */
  ATTACK: 'ATTACK',
  /** 防御力，减少角色受到的伤害 */
  DEFENSE: 'DEFENSE',
  /** 速度，决定战斗中的行动顺序 */
  SPEED: 'SPEED',
} as const;

/** 属性键的类型定义 */
export type AttributeType =
  (typeof ATTRIBUTE_TYPE)[keyof typeof ATTRIBUTE_TYPE];

export const ATTRIBUTE_TYPE_DESC_MAP: Record<AttributeType, string> = {
  [ATTRIBUTE_TYPE.ATTACK]: '攻击',
  [ATTRIBUTE_TYPE.HEALTH]: '生命',
  [ATTRIBUTE_TYPE.DEFENSE]: '防御',
  [ATTRIBUTE_TYPE.SPEED]: '速度',
};

export const ATTRIBUTE_TYPE_ORDER = [
  ATTRIBUTE_TYPE.ATTACK,
  ATTRIBUTE_TYPE.HEALTH,
  ATTRIBUTE_TYPE.DEFENSE,
  ATTRIBUTE_TYPE.SPEED,
];

/**
 * 属性数值接口
 * 描述角色各项属性的具体数值
 */
export type Attribute = {
  [key in AttributeType]: number;
};
